# pip
"""
pip ：python install package ，python三方包包管理工具。安装python解释器时已自带。目录已添加到环境变量中。

包管理工具：包是别人写好的代码。经常有这种情况 ，比如爬虫框架功能的A包，里面引用了负责解析网页的B包，B包引用了更加基础底层的C包。包关系成树装引用。B包依赖C包。直接使用A包，运行报错缺少B包，缺少依赖包。
为了解决依赖包问题，包管理工具出现，主要功能：管理、下载、上传包。解决依赖，安装一个包时会把相关的依赖包都安装好。

pypi： https://pypi.org/ 是查找、安装、发布python包的一个平台。pip工具默认从pypi下载包。
"""
"""
pip list     # 输出安装过的三方包的列表。pip工具本身就是一个包
pip search 关键字   # 搜索包含关键字的包名。
pip install 包名    # （常用)安装包。安装包的本质是从pypi下载，解压复制到C:\Python36\Lib\site-packages 下。默认安装包的最新版本。
pip install requests==2.19.0    # 安装指定版本的包
pip uninstall 包名     # 卸载包

"""







"""
批量备份和安装
pip freeze > requirement.txt     # 讲解释器中的包和版本导出到一个文件中。
pip install requirement.txt    # 根据requirement.txt的信息批量安装对应版本的包。
"""

"""
pip安装速度慢的问题：
因为服务器在国外。为了改善这个问题，国内一些厂商或大学做了pypi网站的镜像。
国内的镜像站豆瓣源、网易源。
常用国内源：
豆瓣：http://pypi.douban.com/simple/ 
清华：https://pypi.tuna.tsinghua.edu.cn/simple

临时： pip install requests -i https://mirrors.aliyun.com/pypi/simple   # 临时换源

永久修改：C:/Users/用户名 下，新建pip文件夹，pip文件夹下新建pip.ini
写入下面两行
[global]
index-url = https://pypi.douban.com/simple/

"""



"""
可能出现的错误：
1. 红字错误。 没有适合系统的安装包，跟C C++相关的库。
2. 拒绝访问 。 权限问题，使用管理员权限的终端运行。
以下不影响：
1. 最后黄字警告。 pip版本升级提示，可以忽略。
2. 黄字警告。 pip所在的目录没有添加的环境变量中。
3. requirement already satisfied 。之前已经成功安装过此包了。
4. cache  缓存。之前已经下载过安装包，再次安装时不会再从网上下载。
"""


"""
在pycharm中进行如上操作（详见下一小节）
"""

"""
另外安装方式：
1. 源码安装。从github 包的主页/releases 找到source code。 解压。cd到解压后的包根目录。
python setup.py install
优点：适合任何操作系统和python版本。缺点：有些包源代码调用了c++代码，但本机没有c++编译器，编译报错。
2. wheel文件安装。wheel文件是有人已经安装好c++编译器，根据操作系统和python版本编译好这种平台上可运行的二进制。
pip上安装的包实际上就是平台为我们准备好的适合当前操作系统和python版本的.wheel文件
pypi上查找下载对应版本的.whl文件。
pip install requests_x64_win_py36.whl
优点：不会报错
3. pip install 包名
第2种方式的自动化。
"""